package com.zklh.leetcode.interviewTop150;

/**
 * 多数元素
 * 这里使用同归于尽消杀法, 已知nums中存在多数元素, 那么 相邻不同, 两两同归于尽, 最后剩下的一定是最多的那个元素,
 * @Author tongnan
 * @Date 2024/4/24
 * @Version 1.0
 */
public class Solution169 {
    public int majorityElement(int[] nums) {
        int count = 0;
        int candidate = 0;
        for (int i = 0; i < nums.length; i++) {
            if (count == 0) {
                candidate = nums[i];
                count++;
            } else {
                if (nums[i] == candidate) {
                    count++;
                } else  {
                    count--;
                }
            }
        }
        return candidate;
    }
}